Problem
Digital circuits are classified as being either combinational or sequential. A combinational type circuit consists only of logic gates (INVERTER, AND, OR) to implement a truth table or a Boolean equation. A combinational circuit has no memory or feedback paths. Its output state (logic 0 or logic 1) is completely defined by the state of its inputs regardless of the sequence of input state changes. Numerous algorithms have been developed to simplify Boolean equations. For example, the Quine-McKluskey method deals with the problem of minimizing the number of terms in a Boolean expression. See "Minimization of Boolean Functions", by E. J. McCluskey, Jr.: Bell System Tech J. Vol. 35, No. 6, 1956.
In contrast, a sequential type circuit has memory elements, generally in the form of flip-flops. Since a flip-flop can store either a logic 0 or a logic 1, a sequential circuit can have up to 2.sup.n states where n is the number of flip-flops. Normally a sequential circuit also has combinational logic gates to support operation of its flip-flops. In addition, a sequential circuit may also have feedback paths that result in a circular flow of control. Any circuit with flip-flops must be designed to satisfy flip-flop timing requirements such as pulse width, setup time and hold time, and may require signal synchronization, flip-flop initialization and self-clearing functions. Because of all these additional considerations, a sequential circuit has many more possible implementations than a purely combinational circuit of a similar size, and is generally much more difficult to design and analyze.
In reference to synchronous control logic, which is a mix of combinational and clocked sequential circuits with feedback, M. Morris Mano writes: "The process of logic design is a complex undertaking. This task requires a considerable amount of experience and ingenuity on the part of the designer. See "Digital Logic and Computer Design", by M. Morris Mano: page 407, 1979. Compared to synchronous control logic, asynchronous (unclocked) control logic is yet more difficult to design and analyze, to the extent that asynchronous designs are often avoided altogether even though they offer higher speed operation than synchronous logic. See "An Engineering Approach to Digital Design", by William I. Fletcher: Chapter 6, Traditional Approaches to Sequential Design and Analysis, p. 652, 1980.